#pragma once

#ifndef SIMU_QDICT
#define SIMU_QDICT

#include <core/queue.h>
#include <core/typedef.h>
#include <qapi/qmp/qobject.h>
#include "utils.h"

#define QDICT_BUCKET_MAX 512


typedef struct QDictEntry {
    char* key;
    QObject* value;
    QLIST_ENTRY(QDictEntry) next;
} QDictEntry;

struct QDict {
    QObject base;
    size_t size;
    QLIST_HEAD(, QDictEntry) table[QDICT_BUCKET_MAX];
};

QDict* qdict_new(void);
#endif // !SIMU_QDICT
